<%--
  Created by IntelliJ IDEA.
  User: User
  Date: 2024/3/9
  Time: 14:51
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>四大作用域</title>
</head>
<body>
<%
    pageContext.setAttribute("msg","Hello pageContext");
    request.setAttribute("msg","Hello request");
    session.setAttribute("msg","Hello session");
    application.setAttribute("msg","Hello application");
%>
<h1>当前页面</h1>
pageContext:<%=pageContext.getAttribute("msg")%><br>
request:<%=request.getAttribute("msg")%><br>
session:<%=session.getAttribute("msg")%><br>
application:<%=application.getAttribute("msg")%><br>
<%
    // 当发生页面跳转时,根据作用域不同,数据会存在丢失情况
    // 1.转发,转发之后页面发生变化,此时pageContext作用域数据丢失
    // 转发之后的页面与当前页面共享请求,因此只有pageContext数据丢失
    // request.getRequestDispatcher("/jsp/scope2.jsp").forward(request,response);
    // 2.重定向,重定向之后的页面与当前页面不共享请求
    // 因此,pageContext、request两个作用域中数据均丢失
    response.sendRedirect(request.getContextPath()+"/jsp/scope2.jsp");
    // 3.如果会话结束,则session作用域的数据丢失
    // 4.当服务器重启之后,application作用域数据丢失
%>
</body>
</html>
